/**
  * Copyright @ 2019 HoldTime Inner Mongolia Co. Ltd.
  */
package com.holdtime.jtt809dataservice.server.processor;

import com.holdtime.jtt809dataservice.common.event.MessageReceiveEvent;
import com.holdtime.jtt809dataservice.common.process.ProtocolProcessor;
import io.netty.channel.ChannelHandlerContext;
import jakarta.annotation.Resource;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component;
import protocol.jtt809.JTT809Packet;
import protocol.jtt809.ProtocolJT809;
import protocol.jtt809.body.RawBody;
import protocol.jtt809.body.UpLinktestReq;
import protocol.jtt809.body.UpLinktestRsp;

/** 
 * 项目名称： jtt809gateway<br>
 * 功能描述： UpLinktestReqProcessor概述：主链路连接保持请求处理<br>
 * 创  建 人： guoai<br>
 * 创建日期： 2019年7月27日<br>
 * 修  改 人：  <br>
 * 修改时间：<br>
 * 修改内容：<br>
 * 版      本： 1.0.0
 */
@Component
public @Slf4j class UpLinktestReqProcessor implements ProtocolProcessor {

    @Resource
    private ProtocolJT809 protocolJT809;

    @Override
    public int getMsgID() {
        return UpLinktestReq.MSG_ID;
    }

    @Override
    public void process(MessageReceiveEvent event) {
        try {
            JTT809Packet<RawBody> source = event.getSource();
            ChannelHandlerContext session = event.getChannelHandlerContext();
            UpLinktestRsp rsp = new UpLinktestRsp();
            JTT809Packet<UpLinktestRsp> packet = protocolJT809.getPacket(rsp, UpLinktestRsp.MSG_ID, source.getMsgGnsscenterid());
            session.write(packet);
        } catch (Exception e) {
            log.error("主链路连接保持请求处理异常：", e);
        }
    }
}
